package peace.graphic.tween.easing
{

public class BackEasing extends Easing
{
	public function BackEasing(type:String = IN)
	{
		super(type);
	}
	
	override protected function easeIn(t : Number, b : Number, c : Number, d : Number) : Number 
	{
		var s:Number = 1.70158;
		return c * (t /= d) * t * ((s + 1) * t - s) + b;
	}

	override protected function easeOut(t : Number, b : Number, c : Number, d : Number) : Number 
	{
		var s:Number = 1.70158;
		return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
	}

	override protected function easeInOut(t : Number, b : Number, c : Number, d : Number) : Number 
	{
		var s:Number = 1.70158;
		if ((t /= d / 2) < 1)
			return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;
		return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;
	}

}

}

